﻿using IncidentesBE;
using IncidentesBL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace IncidentesWEB.admin
{
    public partial class ReporteEstadistica : System.Web.UI.Page
    {
        string fecha_actual;
        protected DataView dvLocaliza;
        protected DataView dvComponentes;
        protected DataView dvTipos;
        protected DataView dvEncontrado;
        protected DataView dvResuelto;
        protected DataView dvCategoria;
        protected DataView dvDispositivos;
        protected DataView dvPartes;
        protected DataView dvGrupos;
        protected DataView dvAreas;
        protected DataView dvDueno;
        protected DataView dvDefectos;
        //datatable
        protected DataTable dtFuncionario;
        protected DataTable dtComponente;
        protected DataTable dtPartes;
        protected DataTable dtDueno;
        protected DataTable dtAreas;
        int _idDisp;
        int _idComp;
        TB_IncidentesBL _TB_IncidentesBL = new TB_IncidentesBL();
        TB_DepartamentoBL _TB_DepartamentoBL = new TB_DepartamentoBL();
        TB_ClasificacionBL _TB_ClasificacionBL = new TB_ClasificacionBL();
        TB_GuardiaBL _TB_GuardiaBL = new TB_GuardiaBL();
        TB_AreaBL _TB_AreaBL = new TB_AreaBL();
        TB_RolBL _TB_RolBL = new TB_RolBL();
        TB_ContratistaBL _TB_ContratistaBL = new TB_ContratistaBL();
        TB_EstatusOperacionalBL _TB_EstatusOperacionalBL = new TB_EstatusOperacionalBL();
        TB_ParteCuerpoBL _TB_ParteCuerpoBL = new TB_ParteCuerpoBL();
        TB_EquipoAfectadoBL _TB_EquipoAfectadoBL = new TB_EquipoAfectadoBL();
        TB_CausaInmediataBL _TB_CausaInmediataBL = new TB_CausaInmediataBL();
        TB_RiesgoIvolucradoBL _TB_RiesgoIvolucradoBL = new TB_RiesgoIvolucradoBL();
        TB_TecnologiaBL _TB_TecnologiaBL = new TB_TecnologiaBL();
        TB_CondicionInvolucradaBL _TB_CondicionInvolucradaBL = new TB_CondicionInvolucradaBL();
        TB_ElementoClaveBL _TB_ElementoClaveBL = new TB_ElementoClaveBL();

        List<TB_DepartamentoBE> lTTB_DepartamentoBE;
        List<TB_AreaBE> lTTB_AreaBE;
        List<TB_EstatusOperacionalBE> lTTB_EstatusOperacionalBE;
        List<TB_ClasificacionBE> lTTB_ClasificacionBE;

        List<TB_GuardiaBE> lTTB_GuardiaBE;
        List<TB_RolBE> lTTB_RolBE;
        List<TB_ElementoClaveBE> lTTB_SistemaBE;
        List<TB_CausaInmediataBE> lTTB_CausaInmediataBE;
        List<TB_TecnologiaBE> lTTB_TecnologiaBE;
        List<TB_CondicionInvolucradaBE> lTTB_CondicionInvolucradaBE;
        List<TB_RiesgoInvolucradoBE> lTTB_RiesgoInvolucradoBE;
        List<Gne_EstadisticaBE> lTGne_EstadisticaBE;

        DateTime Hoy, fecha1;
        int _area_id;
        int idDepto;
        protected void Page_Load(object sender, EventArgs e)
        {
            Hoy = DateTime.Today;
            if (this.IsPostBack)
            {
                idDepto = Convert.ToInt32(Session["AREA_ID"]);
            }
            else
            {
                Hoy = DateTime.Today;
                fecha1 = new DateTime(Hoy.Year, Hoy.Month, 1);
                fecha_actual = Hoy.ToString("dd/MM/yyyy");
                txtFecha.Text = fecha1.ToString("dd/MM/yyyy");
                txtFecha0.Text = fecha_actual;
                txtFecha1.Text = fecha1.ToString("dd/MM/yyyy");
                txtFecha2.Text = fecha_actual;
                lTGne_EstadisticaBE = _TB_IncidentesBL.EstadisticaTB_IncidentesRegistroByDepartamento(txtFecha0.Text, txtFecha1.Text);
            }
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {


            DateTime _Fecha_incidente, _Fecha_incidente1, _Fecha_incidente2, _Fecha_incidente3;


            if (ckbInicio.Checked == true)
            {
                _Fecha_incidente = DateTime.ParseExact(txtFecha.Text, "dd/MM/yyyy", null);
                _Fecha_incidente1 = DateTime.ParseExact(txtFecha0.Text, "dd/MM/yyyy", null);
            }
            else
            {
                _Fecha_incidente = DateTime.ParseExact("01/01/2011", "dd/MM/yyyy", null);
                _Fecha_incidente1 = Hoy;
            }
            if (ckbInicio.Checked == true)
            {
                _Fecha_incidente2 = DateTime.ParseExact(txtFecha.Text, "dd/MM/yyyy", null);
                _Fecha_incidente3 = DateTime.ParseExact(txtFecha0.Text, "dd/MM/yyyy", null);
            }
            else
            {
                _Fecha_incidente2 = DateTime.ParseExact("01/01/2011", "dd/MM/yyyy", null);
                _Fecha_incidente3 = Hoy;
            }
            //if (ddlResuelto.SelectedValue == "%%")
            //    GenerarTabla(_estado, _tipo, _clasificacion, _categoria, _prioridad, _equipe_id, _encontrado, _dueno, _fecha, _fecha1, _fecha2, _fecha3, _depto_id, _parte);
            //else
            GenerarTabla(_Fecha_incidente, _Fecha_incidente1, _Fecha_incidente2, _Fecha_incidente3);
        }

        private void GenerarTabla(DateTime _Fecha_incidente, DateTime _Fecha_incidente1, DateTime _Fecha_incidente2, DateTime _Fecha_incidente3)
        {

            DataTable Resultados = null;//_TB_IncidentesBL.ListarTB_IncidentesFind(_Fecha_incidente, _Fecha_incidente1, _Fecha_incidente2,_Fecha_incidente3);
            StringBuilder Tabla = new StringBuilder();

            string _idEtiqueta;

            int TotalRegistros = Resultados.Rows.Count;
            Tabla.AppendLine("<table id=\"myTable\" class=\"tablesorter\">");
            Tabla.AppendLine("<thead>");
            string cabecera = "";
            if (Session["FUNCIONARIO_ID"] != null)
            {
                cabecera = "<th>COD.</th><th> TITULO </th><th width=\"210\"> DESCRIPCION </th><th> DEPARTAMENTO. </th><th>GUARDIA</th><th> LOCALIZACIÓN </th><th> CLASIFI. </th><th>TIP. EMP.</th><th>ROL</th><th> ESTADO </th>";
            }
            else
            {
                cabecera = "<th>COD.</th><th> TITULO </th><th width=\"210\"> DESCRIPCION </th><th> DEPARTAMENTO. </th><th>GUARDIA</th><th> LOCALIZACIÓN </th><th> CLASIFI. </th><th>TIP. EMP.</th><th> ROL </th><th> ESTADO </th>";
            }
            Tabla.AppendLine(cabecera);
            Tabla.AppendLine("</thead>");
            Tabla.AppendLine("<tbody>");
            int Nro = 0;
            string _estilo = "";
            for (int i = 0; i < TotalRegistros; i++)
            {
                Nro = i + 1;

                _idEtiqueta = Resultados.Rows[i]["Incidente_id"].ToString();
                Tabla.AppendLine("<tr>");
                //if (_area_id == Convert.ToInt32(Resultados.Rows[i]["Departamento"]))
                Tabla.Append("<td" + _estilo + ">" + "<a href=\"#\" onClick=\"PopUp('EvaluacionIncidentePop.aspx?Incidente_id=" + _idEtiqueta + "',20,20,950,700); return false;\"> " + _idEtiqueta + " </a></td>");
                //else
                //Tabla.Append("<td" + _estilo + ">" + _idEtiqueta + " </td>");
                Tabla.Append("<td" + _estilo + ">" + "<a href=\"ActualizarIncidente.aspx?Incidente_id=" + _idEtiqueta + "\" > " + Resultados.Rows[i]["Titulo"] + " </a></td>");
                Tabla.Append("<td>" + Resultados.Rows[i]["Descripcion"] + "</td>");
                Tabla.Append("<td>" + Resultados.Rows[i]["Departamento"] + "</td>");
                Tabla.Append("<td>" + Resultados.Rows[i]["Guardia"] + "</td>");
                Tabla.Append("<td>" + Resultados.Rows[i]["Area_desc"] + "</td>");
                Tabla.Append("<td>" + Resultados.Rows[i]["Clasificacion_desc"] + "</td>");
                Tabla.Append("<td>" + Resultados.Rows[i]["Tipo_emp"] + "</td>");
                Tabla.Append("<td>" + Resultados.Rows[i]["Rol_desc"] + "</td>");

                //Tabla.Append("<td align=\"left\">" + fecha.ToString("dd/MM/yy") + "</td>");
                //Tabla.Append("<td align=\"left\">" + fecha0.ToString("dd/MM/yy") + "</td>");
                Tabla.Append("<td>" + Resultados.Rows[i]["Estado"] + "</td>");
                //Tabla.Append("<td>" + Resultados.Rows[i]["CUMPLIMIENTO"] + "</td>");
                //Tabla.Append("<td>" + Resultados.Rows[i]["Prioridad"] + "</td>");
                Tabla.Append(Environment.NewLine);
                Tabla.AppendLine("</tr>");
            }
            Tabla.AppendLine("</tbody>");
            Tabla.AppendLine("</table>");
            ltlResults.Text = Tabla.ToString();
            //lblRegistros.Text = Nro.ToString();
            //lblPendientes.Text = DefS.ToString();
            //lblDefectos.Text = Def.ToString();
        }

        protected void btnExportar_Click(object sender, EventArgs e)
        {
            //    DateTime _fecha, _fecha1, _fecha2, _fecha3;
            //    string _estado, _tipo, _clasificacion, _categoria, _prioridad, _equipe_id, _encontrado, _resolvido, _dueno, _depto_id, _parte;
            //    _estado = ddlEstado.SelectedValue;
            //    _tipo = ddlTipos.SelectedValue;
            //    _clasificacion = ddlClasificacion.SelectedValue;
            //    _categoria = ddlCategoria.SelectedValue;
            //    _prioridad = ddlPrioridad.SelectedValue;
            //    _equipe_id = ddlTeam.SelectedValue;
            //    _encontrado = ddlEncontrado.SelectedValue;
            //    _resolvido = ddlResuelto.SelectedValue;
            //    _dueno = ddlDueno.SelectedValue;
            //    _depto_id = ddlArea.SelectedValue;
            //    _parte = ddlPartes.SelectedValue;

            //    if (ckbInicio.Checked == true)
            //    {
            //        _fecha = DateTime.ParseExact(txtFecha.Text, "dd/MM/yyyy", null);
            //        _fecha1 = DateTime.ParseExact(txtFecha0.Text, "dd/MM/yyyy", null);
            //    }
            //    else
            //    {
            //        _fecha = DateTime.ParseExact("01/01/2001", "dd/MM/yyyy", null);
            //        _fecha1 = Hoy;
            //    }
            //    if (ckbCierre.Checked == true)
            //    {
            //        _fecha2 = DateTime.ParseExact(txtFecha1.Text, "dd/MM/yyyy", null);
            //        _fecha3 = DateTime.ParseExact(txtFecha2.Text, "dd/MM/yyyy", null);
            //    }
            //    else
            //    {
            //        _fecha2 = DateTime.ParseExact("01/01/2001", "dd/MM/yyyy", null);
            //        _fecha3 = Hoy;
            //    }
            //    ExportToExcel(_estado, _tipo, _clasificacion, _categoria, _prioridad, _equipe_id, _encontrado, _resolvido, _dueno, _fecha, _fecha1, _fecha2, _fecha3, _depto_id, _parte);
        }

        //private void ExportToExcel(string _estado, string _tipo, string _clasificacion, string _categoria, string _prioridad, string _equipe_id, string _encontrado, string _resolvido, string _dueno, DateTime _fecha, DateTime _fecha1, DateTime _fecha2, DateTime _fecha3, string _depto_id, string _parte)
        //{
        //    dvDefectos = new DataView(_TB_EstatusOperacionalBL.ListarEtq_Etiquetas_find_XLS(_estado, _tipo, _clasificacion, _categoria, _prioridad, _equipe_id, _encontrado, _resolvido, _dueno, _fecha, _fecha1, _fecha2, _fecha3, _depto_id, _parte));
        //    if (dvDefectos.Table.Rows.Count > 0)
        //    {
        //        try
        //        {
        //            string filename = "Reporte General.xls";
        //            System.IO.StringWriter tw = new System.IO.StringWriter();
        //            System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
        //            GridView dgGrid = new GridView();
        //            dgGrid.DataSource = dvDefectos;
        //            dgGrid.DataBind();
        //            dgGrid.RenderControl(hw);
        //            Response.ContentType = "application/vnd.ms-excel";
        //            Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "");
        //            this.EnableViewState = false;
        //            Response.Write(tw.ToString());
        //            Response.End();
        //        }
        //        catch (Exception x)
        //        {

        //        }
        //    }
        //}
    }
}